/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package persistencia;

import java.io.Serializable;
import java.util.List;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author hellen
 */
@Entity
@Table(name = "CATEGORIA_PROD")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "CategoriaProd.findAll", query = "SELECT c FROM CategoriaProd c"),
    @NamedQuery(name = "CategoriaProd.findByCategoriaProdID", query = "SELECT c FROM CategoriaProd c WHERE c.categoriaProdID = :categoriaProdID"),
    @NamedQuery(name = "CategoriaProd.findByCatNombre", query = "SELECT c FROM CategoriaProd c WHERE c.catNombre = :catNombre"),
    @NamedQuery(name = "CategoriaProd.findByCatTama\u00f1o", query = "SELECT c FROM CategoriaProd c WHERE c.catTama\u00f1o = :catTama\u00f1o"),
    @NamedQuery(name = "CategoriaProd.findByCatPrecioVenta", query = "SELECT c FROM CategoriaProd c WHERE c.catPrecioVenta = :catPrecioVenta")})
public class CategoriaProd implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "CategoriaProdID")
    private Integer categoriaProdID;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 15)
    @Column(name = "Cat_Nombre")
    private String catNombre;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 15)
    @Column(name = "Cat_Tama\u00f1o")
    private String catTamaño;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Basic(optional = false)
    @NotNull
    @Column(name = "Cat_PrecioVenta")
    private Double catPrecioVenta;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "prodDetalleProdEntradaID1")
    private List<Producto> productoList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "entCategoriaProdID")
    private List<EntregaProd> entregaProdList;

    public CategoriaProd() {
    }

    public CategoriaProd(Integer categoriaProdID) {
        this.categoriaProdID = categoriaProdID;
    }

    public CategoriaProd(Integer categoriaProdID, String catNombre, String catTamaño, Double catPrecioVenta) {
        this.categoriaProdID = categoriaProdID;
        this.catNombre = catNombre;
        this.catTamaño = catTamaño;
        this.catPrecioVenta = catPrecioVenta;
    }

    public Integer getCategoriaProdID() {
        return categoriaProdID;
    }

    public void setCategoriaProdID(Integer categoriaProdID) {
        this.categoriaProdID = categoriaProdID;
    }

    public String getCatNombre() {
        return catNombre;
    }

    public void setCatNombre(String catNombre) {
        this.catNombre = catNombre;
    }

    public String getCatTamaño() {
        return catTamaño;
    }

    public void setCatTamaño(String catTamaño) {
        this.catTamaño = catTamaño;
    }

    public Double getCatPrecioVenta() {
        return catPrecioVenta;
    }

    public void setCatPrecioVenta(Double catPrecioVenta) {
        this.catPrecioVenta = catPrecioVenta;
    }

    @XmlTransient
    public List<Producto> getProductoList() {
        return productoList;
    }

    public void setProductoList(List<Producto> productoList) {
        this.productoList = productoList;
    }

    @XmlTransient
    public List<EntregaProd> getEntregaProdList() {
        return entregaProdList;
    }

    public void setEntregaProdList(List<EntregaProd> entregaProdList) {
        this.entregaProdList = entregaProdList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (categoriaProdID != null ? categoriaProdID.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof CategoriaProd)) {
            return false;
        }
        CategoriaProd other = (CategoriaProd) object;
        if ((this.categoriaProdID == null && other.categoriaProdID != null) || (this.categoriaProdID != null && !this.categoriaProdID.equals(other.categoriaProdID))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "persistencia.CategoriaProd[ categoriaProdID=" + categoriaProdID + " ]";
    }
}
